"""
标记用例是通过装饰器: @pytest.mark 来实现的

如果看过 常用插件 那一篇文章, 大家对这个应该不会太陌生

本质上, 这个装饰器就是为了给用例打上标记, 然后供pytest识别

所以第三方插件的实现方式, 本质上也是通过识别 用例标签 来进行不同功能的实现的.

当然, pytest肯定也会有内置的功能, 来识别用例标签.

这个功能就是: 控制那些标签用例可以运行, 或者说跳过某些标签用例运行

可以想象:

你编写了很多自动化用例, 这些自动化用例, 按照优先级/环境, 可能会有不同的标签
你希望根据不同的情况运行不同的用例
比如, 你希望在版本迭代测试开始前, 运行冒烟自动化用例, 标签为 level0 或者是 smoke
比如, 你希望在测试环境运行测试环境应该运行的自动化用例, 生产环境运行生成环境的用例, 标签可能为 test 和 prod
"""
# import pytest
#
# class TestCase():
#
#     @pytest.mark.test  # 打上标签 test
#     def test_a(self):
#         print("------->test_a")
#         assert 1
#
#     def test_b(self):
#         print("------->test_b")
#         assert 1
#
# if __name__ == '__main__':
#     pytest.main(['-s', '-v', '-m', 'test', __file__])  # 加上 -m 控制需要运行的标签用例

# import pytest
#
# class TestCase():
#
#     @pytest.mark.test
#     def test_a(self):
#         print("------->test_a")
#         assert 1
#
#     def test_b(self):
#         print("------->test_b")
#         assert 1
#
#     @pytest.mark.dev
#     def test_c(self):
#         print("------->test_c")
#         assert 1
#
# if __name__ == '__main__':
#     pytest.main(['-s', '-v', '-m test or dev', __file__])  # 加上 -m 控制需要运行的标签用例

import pytest

class TestCase():

    @pytest.mark.test
    def test_a(self):
        print("------->test_a")
        assert 1

    def test_b(self):
        print("------->test_b")
        assert 1

    @pytest.mark.dev
    def test_c(self):
        print("------->test_c")
        assert 1

if __name__ == '__main__':
    pytest.main(['-s', '-v', '-m not test', __file__])  # 加上 -m 控制需要运行的标签用例